const chalk = require('chalk')
const msgPath = process.env.GIT_INDEX_FILE
const msg = require('fs').readFileSync(msgPath, 'utf-8').trim()

// /^(revert: )?(feat|fix|docs|style|refactor|perf|test|workflow|ci|chore|types)(\(.+\))?: .{1,50}/
const commitRE = /^(revert: )?(feat|fix|docs|style|refactor|test|chore)(\(.+\))?: .{1,20}/

if (!commitRE.test(msg) && !msg.includes('Merge branch')) {
	console.error(
		`  ${chalk.bgRed.white('git提交失败 ')} ${chalk.red('请按照综交院前端规范提交git msg')}\n\n` +
			chalk.red('  提交格式为 type(scope?): subject  #scope，其中subject不能超过20个字符， 示例如下:\n\n') +
			`    ${chalk.green('feat: xx功能开发完毕')}\n` +
			`    ${chalk.green('docs: 添加了xx说明文档')}\n` +
			`    ${chalk.green('config: webpack配置修改')}\n` +
			`    ${chalk.green('fix: 修复了xxbug (close #28)')}\n\n` +
			`    ${chalk.green('综交院常用的type类型如下:')}\n` +
			'	feat 新功能（feature）\n' +
			'	fix 修补bug\n' +
			'	docs 文档（documentation）\n' +
			'	style 格式（不影响代码运行的变动，不是css样式，是代码的格式，比如缩进换行等）\n' +
			'	refactor 重构（即不是新增功能，也不是修改bug的代码变动）\n' +
			'	test 增加测试\n' +
			'	config 构建过程或辅助工具的变动\n' +
			'	chore 其他改动\n'
	)
	process.exit(1)
}
